(define (contains-cycle? l)
  (let ((store-list '()))
   (define (iter x)
     (if (not (pair? x))
       #f
       (if (memq (car l) store-list)
         #t
         (begin 
           (set! store-list (cons (car l) store-list))
           (or (iter (car x))
               (iter (cdr x)))))))
   (iter l)))
